home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 6 / FM Towns Free Software Collection 6.iso / t_os / vdtwn / tvf / asmhd6 / comdhd6 / begin_n.asm next >
Assembly Source File  |  1993-07-08  |  3KB  |  222 lines

  1. ;                    window4 ASM
  2. ;          120h=vram
  3. ;    110h=egb
  4. ;
  5. .386p
  6. ;G_BIOS equ    110h
  7. ;VRAM    equ    120h
  8.  
  9. MOUSE   equ     fword ptr fs:[40h]
  10. EGB    equ    fword ptr fs:[20h]
  11. MOUSE1  equ     fword ptr fs:[48h]
  12. MB      equ     0040h
  13.  
  14.  
  15. code     segment
  16.          assume cs:code,ds:code,gs:code,es:code,ss:code
  17.         org 0
  18. start proc
  19.  
  20.      lea eax,sz1
  21.      lea ecx,sz2
  22.      sub ecx,eax
  23.      inc ecx     
  24.      mov file_byte,ecx
  25.      lea eax,sz1
  26.      mov bf_file,eax
  27.      lea eax,ds_name
  28.      mov ban_fname,eax
  29.      call filecreate
  30.      call writefile
  31.      call fileclose
  32. owari:
  33.     mov ah,4ch
  34.     int 21h       
  35.  
  36.  
  37.  
  38.  
  39. sz1     label        dword
  40.      cmp ah,0    ;ah=0 コマンドの張り付け
  41.      je  link
  42.  
  43.      cmp ah,2           ;システムの初期化    
  44.  
  45.      je syokika
  46.      cmp ah,4           ;window 内を通らなかった
  47.      je nagare
  48.      cmp ah,101            ;window  が 特に何かをして欲しがっている
  49.      je tokuni
  50.      cmp ah,255            ;window 内を通って来た
  51.      ret
  52.  
  53. link:
  54.      call look_me
  55.      mov [esi],ecx
  56.      mov 4[esi],edx
  57.      ret
  58.  
  59. syokika:
  60.      mov bx,1632          ;画面16 16 or [1] or [33]
  61.      mov al,1         ;al=1  画面セット命令
  62.          mov ah,25
  63.      call komei        ;koumei
  64.  
  65.       mov al,0         ;セットした画面のカラー関係
  66.      mov ah,24
  67.      call komei         ;koumei
  68.  
  69.  
  70. ;     mov ah,6
  71. ;     mov al,1
  72. ;     mov edx,3
  73. ;     call zzz
  74.      
  75.  
  76.      mov ah,2              ;mouse eraze
  77.      mov al,0
  78.      call MOUSE
  79.  
  80. ;     mov ah,0eh
  81. ;     mov al,1
  82. ;     call MOUSE
  83.  
  84.     mov ah,25           ;screen cls
  85.     mov al,2
  86.     mov bx,0            ;screen no
  87.     call komei 
  88.  
  89.     mov ah,25           ;screen cls
  90.     mov al,2
  91.     mov bx,1            ;screen no
  92.     call komei 
  93.  
  94.      mov ah,2              ;mouse put
  95.      mov al,1
  96.      call MOUSE
  97.  
  98.  
  99.  
  100.  
  101.            ret
  102.  
  103.  
  104.  
  105.  
  106.  
  107.  
  108. nagare:
  109.      cmp al,1        
  110.      je short gare1
  111.      ret
  112. gare1: 
  113.     cmp ch,0
  114.      jne short gare2
  115.      ret
  116. gare2:
  117.      ret
  118.  
  119. tokuni:
  120.     ret
  121.  
  122. sub_esi:
  123.      pop esi
  124.      ret
  125.  
  126. look_me:
  127.     call sub_esi
  128.          dd    ?     ;koumei の 番地
  129.          dd    ?     ;frontwork1
  130.          dw    0     ;wind need ( 1 = need 0 = no need )
  131.          dw    ?     ;wind no.
  132.          dw     ?     ;size x
  133.          dw     ?     ;size y
  134.          dw     ?     ; offset x
  135.          dw     ?     ; offset y
  136.          dw     ?     ; front color
  137.          dw     ?     ; back color
  138.          dw     ?
  139. zzz:
  140.      push edi
  141.      push esi
  142.      call look_me      ;mov edi,bf_egb
  143.      mov esi,4[esi]
  144.      mov edi,20[esi]
  145.      pop esi
  146.      call EGB
  147.      pop edi
  148.      ret
  149.  
  150.  
  151. komei:
  152.      push esi
  153.      call look_me
  154.      mov esi,[esi]
  155.      xchg esi,[esp]
  156.      ret
  157.  
  158. sz2     label        dword
  159.  
  160.  
  161. ds_name        db    '\KOMEI\実物\tvf_prg\begin',0
  162. bf_file        dd    ?
  163. file_byte    dd    ?
  164. ban_fname    dd    ?
  165. handle        dw    ?
  166. ck_handle    dw    ?
  167. fileopen:
  168.     mov ck_handle,0
  169.     mov ah,3dh
  170.     mov edx,ban_fname
  171.     mov al,2
  172.     int 21h
  173.     jc short cantopen
  174.     mov handle,ax
  175.     ret
  176. cantopen:
  177.     cmp ax,2
  178.     je short filecreate
  179. cantopen1:
  180.     mov ck_handle,1
  181.     ret
  182. filecreate:
  183.     mov ck_handle,0
  184.     mov ah,3ch
  185.     mov edx,ban_fname
  186.     mov ecx,0
  187.     int 21h
  188.     jc cantopen1
  189.     mov handle,ax
  190.     ret
  191. fileclose:
  192.     mov bx,handle
  193.     mov ah,3eh
  194.     int 21h
  195.     ret
  196. readfile:
  197.     mov ck_handle,0
  198.     mov bx,handle
  199.     mov edx,bf_file
  200.     mov ecx,file_byte
  201.     mov ah,3fh
  202.     int 21h
  203.     jc cantopen1
  204.     ret
  205. writefile:
  206.     mov ck_handle,0
  207.     mov bx,handle
  208.     mov edx,bf_file
  209.     mov ecx,file_byte
  210.     mov ah,40h
  211.     int 21h
  212.     jc cantopen1
  213.     ret
  214.  
  215.  
  216.  
  217.  
  218. .stack    1400000  
  219. start   endp
  220. code ends
  221.         end start    
  222.